// 用来实现动态参数数量

#ifdef ARG_LIST_X
#undef ARG_LIST_X
#endif

#if ARG_TYPE == 1
#define ARG_LIST_X(n) cl_arg_t
#elif ARG_TYPE == 2
#define ARG_LIST_X(n) callLater_p->args[n]
#endif
#undef ARG_TYPE

#define EXPAND_ARGS_1() ARG_LIST_X(0)
#define EXPAND_ARGS_2() EXPAND_ARGS_1(), ARG_LIST_X(1)
#define EXPAND_ARGS_3() EXPAND_ARGS_2(), ARG_LIST_X(2)
#define EXPAND_ARGS_4() EXPAND_ARGS_3(), ARG_LIST_X(3)
#define EXPAND_ARGS_5() EXPAND_ARGS_4(), ARG_LIST_X(4)
#define EXPAND_ARGS_6() EXPAND_ARGS_5(), ARG_LIST_X(5)
#define EXPAND_ARGS_7() EXPAND_ARGS_6(), ARG_LIST_X(6)
#define EXPAND_ARGS_8() EXPAND_ARGS_7(), ARG_LIST_X(7)
#define EXPAND_ARGS_9() EXPAND_ARGS_8(), ARG_LIST_X(8)
#define EXPAND_ARGS_10() EXPAND_ARGS_9(), ARG_LIST_X(9)
#define EXPAND_ARGS_11() EXPAND_ARGS_10(), ARG_LIST_X(10)
#define EXPAND_ARGS_12() EXPAND_ARGS_11(), ARG_LIST_X(11)
#define EXPAND_ARGS_13() EXPAND_ARGS_12(), ARG_LIST_X(12)
#define EXPAND_ARGS_14() EXPAND_ARGS_13(), ARG_LIST_X(13)
#define EXPAND_ARGS_15() EXPAND_ARGS_14(), ARG_LIST_X(14)
#define EXPAND_ARGS_16() EXPAND_ARGS_15(), ARG_LIST_X(15)
#define EXPAND_ARGS_17() EXPAND_ARGS_16(), ARG_LIST_X(16)
#define EXPAND_ARGS_18() EXPAND_ARGS_17(), ARG_LIST_X(17)
#define EXPAND_ARGS_19() EXPAND_ARGS_18(), ARG_LIST_X(18)
#define EXPAND_ARGS_20() EXPAND_ARGS_19(), ARG_LIST_X(19)
#define EXPAND_ARGS_21() EXPAND_ARGS_20(), ARG_LIST_X(20)
#define EXPAND_ARGS_22() EXPAND_ARGS_21(), ARG_LIST_X(21)
#define EXPAND_ARGS_23() EXPAND_ARGS_22(), ARG_LIST_X(22)
#define EXPAND_ARGS_24() EXPAND_ARGS_23(), ARG_LIST_X(23)
#define EXPAND_ARGS_25() EXPAND_ARGS_24(), ARG_LIST_X(24)
#define EXPAND_ARGS_26() EXPAND_ARGS_25(), ARG_LIST_X(25)
#define EXPAND_ARGS_27() EXPAND_ARGS_26(), ARG_LIST_X(26)
#define EXPAND_ARGS_28() EXPAND_ARGS_27(), ARG_LIST_X(27)
#define EXPAND_ARGS_29() EXPAND_ARGS_28(), ARG_LIST_X(28)
#define EXPAND_ARGS_30() EXPAND_ARGS_29(), ARG_LIST_X(29)
#define EXPAND_ARGS_31() EXPAND_ARGS_30(), ARG_LIST_X(30)
#define EXPAND_ARGS_32() EXPAND_ARGS_31(), ARG_LIST_X(31)
#define EXPAND_ARGS_33() EXPAND_ARGS_32(), ARG_LIST_X(32)
#define EXPAND_ARGS_34() EXPAND_ARGS_33(), ARG_LIST_X(33)
#define EXPAND_ARGS_35() EXPAND_ARGS_34(), ARG_LIST_X(34)
#define EXPAND_ARGS_36() EXPAND_ARGS_35(), ARG_LIST_X(35)
#define EXPAND_ARGS_37() EXPAND_ARGS_36(), ARG_LIST_X(36)
#define EXPAND_ARGS_38() EXPAND_ARGS_37(), ARG_LIST_X(37)
#define EXPAND_ARGS_39() EXPAND_ARGS_38(), ARG_LIST_X(38)
#define EXPAND_ARGS_40() EXPAND_ARGS_39(), ARG_LIST_X(39)
#define EXPAND_ARGS_41() EXPAND_ARGS_40(), ARG_LIST_X(40)
#define EXPAND_ARGS_42() EXPAND_ARGS_41(), ARG_LIST_X(41)
#define EXPAND_ARGS_43() EXPAND_ARGS_42(), ARG_LIST_X(42)
#define EXPAND_ARGS_44() EXPAND_ARGS_43(), ARG_LIST_X(43)
#define EXPAND_ARGS_45() EXPAND_ARGS_44(), ARG_LIST_X(44)
#define EXPAND_ARGS_46() EXPAND_ARGS_45(), ARG_LIST_X(45)
#define EXPAND_ARGS_47() EXPAND_ARGS_46(), ARG_LIST_X(46)
#define EXPAND_ARGS_48() EXPAND_ARGS_47(), ARG_LIST_X(47)
#define EXPAND_ARGS_49() EXPAND_ARGS_48(), ARG_LIST_X(48)
#define EXPAND_ARGS_50() EXPAND_ARGS_49(), ARG_LIST_X(49)
#define EXPAND_ARGS_51() EXPAND_ARGS_50(), ARG_LIST_X(50)
#define EXPAND_ARGS_52() EXPAND_ARGS_51(), ARG_LIST_X(51)
#define EXPAND_ARGS_53() EXPAND_ARGS_52(), ARG_LIST_X(52)
#define EXPAND_ARGS_54() EXPAND_ARGS_53(), ARG_LIST_X(53)
#define EXPAND_ARGS_55() EXPAND_ARGS_54(), ARG_LIST_X(54)
#define EXPAND_ARGS_56() EXPAND_ARGS_55(), ARG_LIST_X(55)
#define EXPAND_ARGS_57() EXPAND_ARGS_56(), ARG_LIST_X(56)
#define EXPAND_ARGS_58() EXPAND_ARGS_57(), ARG_LIST_X(57)
#define EXPAND_ARGS_59() EXPAND_ARGS_58(), ARG_LIST_X(58)
#define EXPAND_ARGS_60() EXPAND_ARGS_59(), ARG_LIST_X(59)
#define EXPAND_ARGS_61() EXPAND_ARGS_60(), ARG_LIST_X(60)
#define EXPAND_ARGS_62() EXPAND_ARGS_61(), ARG_LIST_X(61)
#define EXPAND_ARGS_63() EXPAND_ARGS_62(), ARG_LIST_X(62)
#define EXPAND_ARGS_64() EXPAND_ARGS_63(), ARG_LIST_X(63)

#define EXPAND_ARGS(n) EXPAND_ARGS_##n()
#define EXPAND_ARGS_X(n) EXPAND_ARGS(n)
